Expand description

The reqwest middleware implementation for http-cache.

use reqwest::Client;
use reqwest_middleware::{ClientBuilder, Result};
use http_cache_reqwest::{Cache, CacheMode, CACacheManager, HttpCache, HttpCacheOptions};

#[tokio::main]
async fn main() -> Result<()> {
    let client = ClientBuilder::new(Client::new())
        .with(Cache(HttpCache {
            mode: CacheMode::Default,
            manager: CACacheManager::default(),
            options: HttpCacheOptions::default(),
        }))
        .build();
    client
        .get("https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching")
        .send()
        .await?;
    Ok(())
}

Overriding the cache mode

The cache mode can be overridden on a per-request basis by making use of the reqwest-middleware extensions system.

client.get("https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching")
    .with_extension(CacheMode::OnlyIfCached)
    .send()
    .await?;

Structs

Enums

Traits

  • A trait providing methods for storing, reading, and removing cache records.